home *** CD-ROM | disk | FTP | other *** search
/ Aminet 32 / Aminet 32 (1999)(Schatztruhe)[!][Aug 1999].iso / Aminet / dev / basic / Mildred.lha / Mildred.readme < prev   
Text File  |  1999-05-26  |  14KB  |  160 lines

  1. Short:    Chunkygraphics library v1.50 for Blitz Basic 2
  2. Author:   Paul West
  3. Uploader: paul@stationone.demon.co.uk
  4. Type:     dev/basic
  5. Replaces: Mildred.lha
  6. Requires: 68020+ CPU, preferably some fastram, and prior knowledge of blitz
  7.  
  8. Mildred is a chunkygraphics library for Blitz Basic 2. It attempts to replace
  9. most of the existing planar graphics system and also add new features and
  10. capabilities, the main difference being that everything is done in `chunky' data
  11. format rather than planar. This has many advantages in various areas and a
  12. comprehensive range of blit and other routines are provided as well as many
  13. custom objects (chunky bitmaps, shapes, queues, tables, c2pwindows, etc..)
  14.  
  15. Mildred brings you over 250 new tokens in a custom library which has full runtime
  16. errochecking routines. The library is the largest ever made for blitz but
  17. probably you will not mind the byte overhead when you consider what it will make
  18. possible for you in your software. Working in chunky allows easy graphics-card
  19. support and output to AGA via a flexible chunky-to-planar system.
  20.  
  21. The Mildred library was written in 1998-1999 by Paul West. However, the copyright
  22. and rights to the sourcecode has been transferred to Pagan Games, who are on the
  23. web at http://www.pagan-games.com. You are permitted to use the library in its
  24. normal fashion, ie using the new tokens that will appear in blitz, but are not
  25. permitted to attempt any kind of reverse engineering. Nor are you permitted to
  26. gain any money or goods by sale of the library. However, you ARE permitted to
  27. use it in any and all of your blitz software, be it freeware, shareware,
  28. licenseware, commercialware or whatever. I do not ask for any fee in return
  29. unless you are feeling obliged and I cannot `officially' accept any kind of
  30. payment for legal reasons. If you are using it in an commercial product that is
  31. retailing for more than 5 UK-pounds per item, then I wouldn't mind a mention or
  32. a sudden act of unjustified generosity. :-P
  33.  
  34. The original aminet archive was a collection of archives from the official Mildred
  35. support site, which is at http://www.stationone.demon.co.uk and the same trend
  36. continues with this update. There have been a number of revisions since the
  37. previous update and some more example programs added. Loading up index.html
  38. you will be greeted with a copy of the front page of the support site, which will
  39. allow you to read the comments about each of the archives to give you some idea
  40. of what they are. The main Mildred library is in the Mildred.lha archive. See the
  41. documentation for how to install it. The only part from the index.html that will
  42. not work is the links to the online html documentation, although that
  43. documentation is provided in an archive.
  44.  
  45. This aminet release is intended mainly to put Mildred and associated example
  46. programs onto the aminet so that people who do not have internet access may join
  47. in with the fun. If you are on the internet I suggest you just go to the support
  48. site, and also recommend joining the blitz mailing list if you haven't already
  49. done so which can be achieved by sending an empty message to
  50. blitz-list-subscribe@netsoc.ucd.ie where you will find a number of blitz addicts
  51. and Mildred users.
  52.  
  53. The previous aminet release was v1.38. Some changes have occured to the library
  54. that may require you to save your sourcecode as ascii text, install the library
  55. and then reload your ascii text otherwise you may get tokenisation problems. Read
  56. the information section of the documentation for details of important changes
  57. because also some of the syntax has changed and some tokens have been axed
  58. altogether!
  59.  
  60. This library is now v1.50. This will likely be the last release!! The following
  61. changes to the library itself have occured since the release of v1.38:
  62.  
  63. v1.39 - Optimised routine PerformLine for speedup and less instructions
  64.       - Expanded MInk to allow specification of second and third inks to use
  65.       - Slightly rearranged internal data area and ensured alignment without Even4's, ready for extensions to access
  66.       - Added MMildredBase to return the base address of Mildred's internal data area
  67.       - Added lib support for returning base of Mildred's internal data area to other libraries, at the end of Initialise
  68. v1.40 - Added CRsrc_TotWidth to resource structure, for shapes and bitmaps, and added support code in necessary routines
  69.       - Modified many routines to read CRsrc_TotWidth rather than move.w mem->reg, add.w mem->reg. Slight general speedups
  70.       - Rearranged part of Mc2pWindow to check and set auto-use at the start as it was possibly trashed by the CacheClearU_()
  71. v1.41 - Made MParticleMode, MBlitMode, MQBlitMode, MSBlitMode, MQSBlitMode, MMaskScrollMode and MSMaskScrollMode into commands
  72.       - Slightly modified MUnQueue, negligible speedup, but better pipelining
  73.       - Added MDrawingMode to change mode used for drawing operations such as MPlot, MLine, MBoxF etc
  74.       - Added MDrawingMode support to MCls family for InvMode, MColourMode, MReMapMode and MSimpleReMapMode (no stencil remap!)
  75.       - Added MDrawingMode support to MPlot family for InvMode, MColourMode, MReMapMode and MSimpleReMapMode (no stencil remap)
  76.       - Added MDrawingMode support to MBoxF family for InvMode, MColourMode, MReMapMode and MSimpleReMapMode (no stencil remap)
  77.       - Added MDrawingMode support to MBox family for InvMode, MColourMode, MReMapMode and MSimpleReMapMode (no stencil remap!)
  78.       - Added MDrawingMode support to MLine family for InvMode, MColourMode, MReMapMode and MSimpleReMapMode (no stencil remap)
  79. v1.42 - Moved _DrawingModeType in data area and made it into a word, as it was mistakenly defined as a byte so was trashing
  80.       - Fixed bugs in MSTile32x32 and MSTile32x32Store, wrapping was not implemented for the dest stencil
  81.       - Slightly optimised routine PerformRemap and fixed bug in PerformRemapUsingShape as top half of d4 needed to be cleared
  82.       - Slightly optimised MUnQueue (bitmap form), speedup of about 0.1fps!
  83.       - Fixed major bug in routine PerformBlit1, ReMap mode routine was doing stencil cut but should have been a straight blit
  84.       - Added optimisation as routines PerformBlit1[b]_16, to do groups of 16 pixels instead of 4 if the width is a multiple
  85.       - Made M[c2pWindow][Shape][Bitmap]Width and M[c2pWindow][Shape][Bitmap]Height work without specified object number
  86.       - Made MAddr[c2pWindow][Shape][Bitmap][Queue][Table] work without specified object number
  87.       - Optimised macro RemakeStencil, used for generating a stencil or cookie from a bitmap or shape
  88.       - Added optimisation as routines PerformBlit2[b]_16, to do groups of 16 pixels instead of 4 if the width is a multiple
  89.       - Fixed major bug in routines PerformBlit2[b][_16] and PerformBlit3[b] in SolidMode write to mask was or instead of and
  90.       - Recoded all tile blits in 030 mode from movem.l's to move.l's and done modulos different. 2-3fps faster, on 040.
  91.       - Added optimisation as routines PerformBlit3[b]_16, to do groups of 16 pixels instead of 4 if the width is a multiple
  92.       - Optimised GenericBlit (scroll) routines, optimised for when width is multiple of 16 or multilpes of 64 for blockscroll
  93.       - Fixed bug in all tokens that add items to a queue. Upper word of d7 was corrupt due to unusual longword usage
  94. v1.43 - Added MParticleFormat to select mode for particle tokens, between 0=word, <0=quick and >0=actual memory addresses
  95.       - Merged Word/Quick/Address versions of particle commands into single commands, using MParticleFormat to choose
  96.       - Removed MReMap[Shape]UsingShape commands as they have been superceded by MDrawingMode functionality
  97.       - Removed Mc2pToggleSingle, Mc2pToggleDouble and Mc2pToggleTriple, as you might as well just use Mc2pToggle.
  98.       - Removed the MInitShape token and just kept with MShape for making new shapes
  99.       - Renamed MUse[c2pWindows][Shapes][Bitmaps][Queues][Tables] to the singular versions and removed the plurals
  100.       - Removed MMidHandle, MMidOrigin, MCopyHandle and MCopyOrigin completely
  101.       - Removed the unused MFlushTable completely
  102.       - Removed M040c2pUsage and any other tokens associated with its status.
  103.       - Merged MMakeCookies into MMakeCookie and removed MMakeCookies token
  104.       - Merged MMakeStencils into MMakeStencil and removed MMakeStencils token
  105.       - Merged MFree[c2pWindows][Shapes][Bitmaps][Cookies][Stencils][Queues][Tables] to the singular and removed the plurals
  106.       - Tokenisation has been severly compromised due to changes, deletions and additions.!!
  107. v1.44 - Moved MPictureDissolveIn token to the end of the library and renamed the old one to MNothing as the 128th token fails
  108. v1.45 - Killed Mc2pRowLacing, Mc2pColumnLacing, Mc2pRowToggle, Mc2pColumnToggle and Mc2pToggle. Tokens 1-5 free for use!
  109.       - Removed all code relating to interlaced c2p conversion, especially from Mc2pWindow, Mc2p and data area
  110.       - Changed c2pWindow structure to 8 bytes instead of 16 and allowed c2p0_Pixels to be .w or .l depending on modulos>0
  111.       - Modified Mc2pWindow and Mc2p to support non-modulo c2p routine, and implemented non-modulo c2p (040 and 030) into Mc2p
  112.       - Added MPictureDissolveOut to wipe image to a colour, bit faster than cross-wiping to blank image in MPictureDissolveIn
  113.       - Modified MCludge[Shape][Bitmap][Cookie][Stencil] to take the `-16' away from the programmer making base address actual
  114.       - Merged MUnQueueRange into extra syntax option of MUnQueue, still able to unqueue range without flush or all with flush
  115.       - Added MBlockUnQueue in place of MUnQueueRange for unqueing items with width and X coord multiple of 16 (doesn't check)
  116.       - Modified clearscreen mode of MUnQueue and MBlockUnQueue to use current ink instead of just 0's
  117.       - Tried to add stencil-unqueue (cut behind stencil) but failed, not enough regs, so removed
  118.       - Slightly optimised clearscreen mode of M[Block]UnQueue to do forwards operation and (an)+ (removes need for mulu)
  119.       - Slightly optimised routine PerformCls in all relevant blit modes
  120. v1.46 - Added MWrapXParticles and MWrapYParticles to do wrapping of only sides or top/bottom. No X-wrap for Ptr.l, however.
  121.       - Added MAddToXParticles and MAddToYParticles to add list(s) to particles but only one of the two components (Not Ptr.l)
  122.       - Fixed small bug in errorchecking routine of MAddToParticles, check for zero address occured when address was negative
  123.       - Fixed bug in clipping version of .q 2-adder routine in MAddToParticles, a3 needed to have a skip value added
  124. v1.47 - Fixed bugs in routine PerformGenericBlit2[b], optimised routines were copying stencil also but should be data only
  125.       - Added CustomOffsets.l to MScroll family, for using list of custom Width.w,X1Offset.w,X2Offset.w,SourceModulo.w values
  126.       - Added CustomOffsets.l to MSScroll family, for using list of custom Width.w,X1Offset.w,X2Offset.w,SourceModulo.w values
  127.       - Fixed bugs in generic blit routines, beq should have been blt for skipping if byte loopcounter was empty (-1 not 0)
  128.       - Optimised remainder-byte checking in PerformGenericBlit2[b]/5[b], was no need to test for zero bytes
  129.       - Small optimisation, changing bsr to bra if the jump is the last instruction of a routine, as there is no need to stack
  130.       - Added LongwordStore.l to data area for temporary storage of longwords, like when stacking it would not be possible
  131.       - Fixed bugs in errorchecking routines of MPointShape and MPointCookie, was jumping to Error28 instead of Error27
  132.       - Added [,Source.w] parameter to MPoint[Shape][Stencil][Cookie] to specify a source bitmap/shape for the operation
  133.       - Added MZoom, MZoomShape, MZoomBitmapToShape and MZoomShapeToBitmap, for zoomed unmasked scrolls (+CustomOffsets list!)
  134.       - Added macros CCheckXYFits2 and CCheckXYFits3 for use by errorchecking routines of MZoom[Shape][To][Bitmap]
  135. v1.48 - Fixed bug in routine PerformBlit1_16, indirect offsets in SimpleRemap were 0..3,0..3,0..3,0..3 should have been 0..15
  136.       - Optimised (1fps+) some scrolls that copy the stencil/cookie, as interleaving the moves is faster than as bursts
  137.       - Optimised some blit modes in PerformBlit1/2/3[b][_16] using phase-shift, pipelining and interleaved mem accesses
  138.       - Optimised the 030 tile routines a bit when doing an STile, by interleaving the moves
  139.       - Optimised the SimpleReMap modes in PerformBlit1[b]_16/2[b]_16/3[b]_16 when width is multiple of 16 (gains up to 2fps)
  140.       - Optimised zoom routines. Zooms with non-integer x factor are about 4fps faster
  141.       - Optimised all zoom routines using addx method instead of swap/swap/add, gains of about 3-4fps
  142.       - Added DeRes?.w as last compulsory param of zoom tokens, and added de-res routines to zooms
  143.       - Optimised zoom routines for when x factor is 1.0 to do extra-fast y-zoom, many fps faster
  144.       - Attempted to rewrite routine PerformLine using .q loop with addx, but it performed slower due to need to use divu.w
  145.       - Optimised CustomZoom[DeRes] that uses CustomOffsets.l to do groups of 4 pixels if width is multiple, gain up to 2fps+
  146. v1.49 - Added MAddMode which returns mode number 7 for use with various graphics routines to choose `Add' operations
  147.       - Added full support throughout the lib for MAddMode routines, byte values of source and dest are simply added together
  148.       - Updated the descriptions of numerous tokens to better represent recent changes
  149.       - Fixed bug in single-colour section of routine PerformReMap, loopcounter was screwy
  150. v1.50 - Fixed bugs in MWrapXParticles and MWrapYParticles, loops were BGE and should have been BGT, causing 1 illegal loop
  151.       - Fixed bugs in check routines of MBox[F] family, as tables were being checked for in MAddMode (where not necessary)
  152.  
  153. Probs/comments/suggestions/worldly praise to paul@stationone.demon.co.uk
  154.  
  155. Also check out http://www.stationone.demon.co.uk for the support site, and
  156. http://www.pagan-games.com for the Pagan Games website, to whom the copyright of
  157. Mildred now belongs.
  158.  
  159. cheers
  160.